home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir44 / dungeon9.zip / UTIL.BAS < prev    next >
BASIC Source File  |  1994-05-15  |  5KB  |  229 lines

  1. REM The Dungeon Player List Utility v9.0
  2.  
  3. ' declare all variables as integer type
  4. DEFINT A-Z
  5.  
  6. ' declares variable storage for user record structure type
  7. TYPE usertype
  8.  codename AS STRING * 32
  9.  password AS STRING * 32
  10.  spell(1 TO 40) AS INTEGER
  11.  wand(1 TO 10) AS INTEGER
  12.  potion(1 TO 10) AS INTEGER
  13.  staff(1 TO 10) AS INTEGER
  14.  ring(1 TO 10) AS INTEGER
  15.  globe(1 TO 10) AS INTEGER
  16.  stats1(1 TO 6) AS DOUBLE
  17.  stats2(1 TO 17) AS INTEGER
  18. END TYPE
  19.  
  20. ' declare structures common to main program
  21. DIM userrec AS usertype
  22.  
  23. ' define function to convert encrypted string to 20 character string
  24. DEF fndecrypt$ (z$)
  25.   i$ = ""
  26.   FOR j = 1 TO 4
  27.     j$ = ""
  28.     z# = CVD(MID$(z$, j * 8 - 7, 8))
  29.     FOR q = 1 TO 5
  30.       dvid# = INT(z# / 1000)
  31.       num# = z# - dvid# * 1000
  32.       z# = dvid#
  33.       j$ = j$ + CHR$(num#)
  34.     NEXT
  35.     y$ = LEFT$(j$, 1)
  36.     MID$(j$, 1, 1) = MID$(j$, 5, 1)
  37.     MID$(j$, 5, 1) = y$
  38.     y$ = MID$(j$, 2, 1)
  39.     MID$(j$, 2, 1) = MID$(j$, 4, 1)
  40.     MID$(j$, 4, 1) = y$
  41.     i$ = i$ + j$
  42.   NEXT
  43.   fndecrypt$ = i$
  44. END DEF
  45.  
  46. ' main program
  47. GOSUB Open.User.File ' open the users data file
  48. GOSUB Header1
  49. p = 5
  50. FOR x = 1 TO LOF(1) / LEN(userrec)
  51.   p = p + 1
  52.   IF p = 24 THEN
  53.     p = 5
  54.     GOSUB Press.Key
  55.     GOSUB Header1
  56.   END IF
  57.   GET 1, x, userrec
  58.   a$ = fndecrypt$(userrec.codename)
  59.   MID$(a$, 1, 1) = UCASE$(MID$(a$, 1, 1))
  60.   b$ = STR$(userrec.stats1(1))
  61.   b$ = b$ + SPACE$(14 - LEN(b$))
  62.   c$ = STR$(userrec.stats1(2))
  63.   c$ = c$ + SPACE$(14 - LEN(c$))
  64.   a$ = a$ + b$ + " " + c$
  65.   z = 0
  66.   FOR y = 1 TO 10
  67.     IF userrec.wand(y) = 1 THEN
  68.       z = z + 1
  69.     END IF
  70.   NEXT
  71.   b$ = STR$(z)
  72.   b$ = b$ + SPACE$(7 - LEN(b$))
  73.   a$ = a$ + b$
  74.   z = 0
  75.   FOR y = 1 TO 10
  76.     IF userrec.potion(y) = 1 THEN
  77.       z = z + 1
  78.     END IF
  79.   NEXT
  80.   b$ = STR$(z)
  81.   b$ = b$ + SPACE$(9 - LEN(b$))
  82.   a$ = a$ + b$
  83.   z = 0
  84.   FOR y = 1 TO 10
  85.     IF userrec.staff(y) = 1 THEN
  86.       z = z + 1
  87.     END IF
  88.   NEXT
  89.   b$ = STR$(z)
  90.   b$ = b$ + SPACE$(8 - LEN(b$))
  91.   a$ = a$ + b$
  92.   z = 0
  93.   FOR y = 1 TO 10
  94.     IF userrec.ring(y) = 1 THEN
  95.       z = z + 1
  96.     END IF
  97.   NEXT
  98.   b$ = STR$(z)
  99.   a$ = a$ + b$
  100.   COLOR 13
  101.   PRINT a$
  102. NEXT
  103. GOSUB Press.Key
  104. GOSUB Header2
  105. p = 5
  106. FOR x = 1 TO LOF(1) / LEN(userrec)
  107.   p = p + 1
  108.   IF p = 24 THEN
  109.     p = 5
  110.     GOSUB Press.Key
  111.     GOSUB Header2
  112.   END IF
  113.   GET 1, x, userrec
  114.   a$ = fndecrypt$(userrec.codename)
  115.   MID$(a$, 1, 1) = UCASE$(MID$(a$, 1, 1))
  116.   b$ = STR$(userrec.stats2(1))
  117.   b$ = b$ + SPACE$(9 - LEN(b$))
  118.   c$ = STR$(userrec.stats2(2))
  119.   c$ = c$ + SPACE$(7 - LEN(c$))
  120.   d$ = STR$(userrec.stats2(3))
  121.   d$ = d$ + SPACE$(10 - LEN(d$))
  122.   e$ = STR$(userrec.stats2(4))
  123.   e$ = e$ + SPACE$(13 - LEN(e$))
  124.   f$ = STR$(userrec.stats2(5))
  125.   f$ = f$ + SPACE$(10 - LEN(f$))
  126.   g$ = STR$(userrec.stats2(6))
  127.   COLOR 13
  128.   PRINT a$ + b$ + c$ + d$ + e$ + f$ + g$
  129. NEXT
  130. GOSUB Press.Key
  131. GOSUB Header3
  132. p = 5
  133. FOR x = 1 TO LOF(1) / LEN(userrec)
  134.   p = p + 1
  135.   IF p = 24 THEN
  136.     p = 5
  137.     GOSUB Press.Key
  138.     GOSUB Header3
  139.   END IF
  140.   GET 1, x, userrec
  141.   a$ = fndecrypt$(userrec.codename)
  142.   MID$(a$, 1, 1) = UCASE$(MID$(a$, 1, 1))
  143.   b$ = STR$(userrec.stats1(3))
  144.   b$ = b$ + SPACE$(16 - LEN(b$))
  145.   c$ = STR$(userrec.stats1(5))
  146.   c$ = c$ + SPACE$(16 - LEN(c$))
  147.   d$ = STR$(userrec.stats1(6))
  148.   COLOR 13
  149.   PRINT a$ + b$ + c$ + d$
  150. NEXT
  151. GOSUB Press.Key
  152. GOSUB Header4
  153. p = 5
  154. FOR x = 1 TO LOF(1) / LEN(userrec)
  155.   p = p + 1
  156.   IF p = 24 THEN
  157.     p = 5
  158.     GOSUB Press.Key
  159.     GOSUB Header4
  160.   END IF
  161.   GET 1, x, userrec
  162.   a$ = fndecrypt$(userrec.codename)
  163.   MID$(a$, 1, 1) = UCASE$(MID$(a$, 1, 1))
  164.   FOR L=7 TO 12
  165.     b$ = STR$(userrec.stats2(L))
  166.     b$ = b$ + SPACE$(7 - LEN(b$))
  167.     a$ = a$ + b$
  168.   NEXT
  169.   COLOR 13
  170.   PRINT a$;
  171. NEXT
  172. GOSUB Press.Key
  173. COLOR 7, 0
  174. CLS
  175. END
  176.  
  177. Press.Key:
  178. LOCATE 25, 1, 0
  179. COLOR 10
  180. PRINT "Press a key to continue:";
  181. WHILE INKEY$ = ""
  182. WEND
  183. RETURN
  184.  
  185. Header1:
  186. GOSUB Page.Header
  187. COLOR 14
  188. PRINT "Player Name          Dungeon Level  Player Level  Wands  Potions  Staffs  Rings"
  189. PRINT STRING$(79, "-")
  190. RETURN
  191.  
  192. Header2:
  193. GOSUB Page.Header
  194. COLOR 14
  195. PRINT "Player Name          Strength Wisdom Intellect Constitution Dexterity Charisma"
  196. PRINT STRING$(78, "-")
  197. RETURN
  198.  
  199. Header3:
  200. GOSUB Page.Header
  201. COLOR 14
  202. PRINT "Player Name          Experience      Gold            Hit Points"
  203. PRINT STRING$(63, "-")
  204. RETURN
  205.  
  206. Header4:
  207. GOSUB Page.Header
  208. COLOR 14
  209. PRINT "Player Name          Weapon Shield Armor  Cloak  Helmet Boots"
  210. PRINT STRING$(61, "-")
  211. RETURN
  212.  
  213. Page.Header:
  214. COLOR 14,1
  215. CLS
  216. COLOR 15
  217. PRINT "The Dungeon Player List 9.0 Utility"
  218. PRINT STRING$(35, "=")
  219. PRINT
  220. RETURN
  221.  
  222. ' open the user file, length of user record
  223. Open.User.File:
  224.  CLOSE 1 ' close file 1
  225.  ' open user file random
  226.  OPEN "players.dat" FOR RANDOM SHARED AS #1 LEN = LEN(userrec)
  227.  RETURN ' exit routine
  228.  
  229.